<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Social media Monopoly: Riferimenti per il file mono_main.cpp</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Social media Monopoly
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generato da Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Cerca');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Pagina&#160;Principale</span></a></li>
      <li><a href="annotated.html"><span>Classi</span></a></li>
      <li class="current"><a href="files.html"><span>File</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Cerca" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Elenco&#160;dei&#160;file</span></a></li>
      <li><a href="globals.html"><span>Elementi&#160;dei&#160;file</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Funzioni</a> &#124;
<a href="#var-members">Variabili</a>  </div>
  <div class="headertitle">
<div class="title">Riferimenti per il file mono_main.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;gtk/gtk.h&gt;</code><br/>
<code>#include &lt;iostream&gt;</code><br/>
<code>#include &lt;cstring&gt;</code><br/>
<code>#include &lt;cstdlib&gt;</code><br/>
<code>#include &lt;sstream&gt;</code><br/>
<code>#include &lt;fstream&gt;</code><br/>
<code>#include &quot;<a class="el" href="strutta__dati_8h_source.html">strutta_dati.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="manip_8h_source.html">manip.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="fileIO_8h_source.html">fileIO.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="imp__prob_8h_source.html">imp_prob.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Funzioni</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a25880d9d561c0b54301ba567d445c40f">hide_main_window</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che chiude la finestra in cui si trova il pulsante premuto.  <a href="#a25880d9d561c0b54301ba567d445c40f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#adb960475c9fe80d1220e21a605252b00">handler_ok_personaggi</a> (GtkButton *button, gpointer user_data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale di conferma dei personaggi scelti in base al numero di giocatori visualizza le miniature delle pedine e le sistema in posizione corretta di partenza.  <a href="#adb960475c9fe80d1220e21a605252b00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ac4c9a75fdbed28903250565c566feb7c">handler_4_giocatori</a> (GtkButton *button, gpointer user_data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">segnale che rende utilizzabile il quarto personaggio all'utente (solo in caso di scelta di 4 giocatore)  <a href="#ac4c9a75fdbed28903250565c566feb7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#abdc315fd26f6c44dd5425989015b936b">handler_3_giocatori</a> (GtkButton *button, gpointer user_data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">segnale che rende utilizzabile i primi 3 personaggi agli utenti (solo per 3 giocatori)  <a href="#abdc315fd26f6c44dd5425989015b936b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ad7b1cc6a2e69adc75a55809282cbe19d">handler_2_giocatori</a> (GtkButton *button, gpointer user_data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che permette di scegliere solo tra i primi 2 personaggi nel caso si giochi in 2 soli giocatori.  <a href="#ad7b1cc6a2e69adc75a55809282cbe19d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#af84d92602708d3414c177466ca706792">handler_new_match</a> (GtkMenuItem *menuitem, gpointer user_data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che apre la dialogbox per la scelta dei personaggi e azzera le proprietà della precendente partita.  <a href="#af84d92602708d3414c177466ca706792"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#af8a61bf93761bebe15ed19b51c33062e">handler_lancia_dado</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che gestisce il lancio dei dadi tutti gli spostamenti al lancio connessi tramite la funzione del file <a class="el" href="manip_8cpp.html">manip.cpp</a> il settaggio dei tutte le label e immagini dovuto allo spostamento il controllo sulla prigione e sugli imprevisti e probabilità, il pagamento di un determinato affito al proprietario della carta su cui si è andati a posizionare.  <a href="#af8a61bf93761bebe15ed19b51c33062e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ab0fb1abffab08bda22d1da4db1f6d6be">handler_fine_turno</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che gestisce il passaggio del turno e tutto quello ad esso collegato aggioranamento delle label delle immagine e controllo delle prigione per il giocatore successivo che dovrà pagare la cauzione.  <a href="#ab0fb1abffab08bda22d1da4db1f6d6be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a3c9df4ae98fe5803e248e2ad11a90d96">handler_compra_carta</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che permette di compra una determinata carta a costo che alcune condizioni siano rispettate, contiene anche un controllo che stabilisce se si posseggono tutte le carte dello stesso colore.  <a href="#a3c9df4ae98fe5803e248e2ad11a90d96"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a48bba7eaf8788f6daf8af2e15627e0b2">handler_visuallizza_dialog_conferma</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Questo segnale mi permette di aprire una finestra di dialog per chiedere all'utente se desidera realmente compiere una determinata azione.  <a href="#a48bba7eaf8788f6daf8af2e15627e0b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a636d53fb578a95c7e1500c2272b3d7c0">handler_dichiara_fallimento</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale associato al pulsante dichiara fallimento che permette comunica la propria sconfitta o il proprio ritiro, il giocatore che preme tale pulsante viene estratto dalla lista e si contralla che sia rimasto un solo giocatore in tal caso quello risulterà essere il vincitore della partita.  <a href="#a636d53fb578a95c7e1500c2272b3d7c0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ad90b3c3c7119a0c9edd6ee48d512e2ca">handler_compra_azioni</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">segnale che permette di comprare le azioni di una certa azienda nel caso in cui si rispettino alcune condizioni chiave  <a href="#ad90b3c3c7119a0c9edd6ee48d512e2ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#aba0d8b30cd78f8b526e400cdb2619d88">handler_visualizza_carte</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">segnale che permette di visualizzare la dialog con l'elenco delle proprie carte  <a href="#aba0d8b30cd78f8b526e400cdb2619d88"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a90b53f2b08ce7da0764ae3a27ff4e579">handler_cambia_ipo</a> (GtkComboBox *widget, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che in base alla scelta fatta nella ComboBox fa variare la label contenente il valore di vendita.  <a href="#a90b53f2b08ce7da0764ae3a27ff4e579"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ad3c3843f2b32ca3b4de9f28e7e0fc683">hide_and_remove</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sengale di uscita particolare associato al pulsante esci delle dialog visualizza carte che svuota la combo e contralla che un certo giocatore non debba dichiarare fallimento.  <a href="#ad3c3843f2b32ca3b4de9f28e7e0fc683"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a9d7117f8872f56288ed064d160d15fce">handler_vendi_carta</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che gestisce la vendita delle carte alla banca utilizza la funzione del modulo <a class="el" href="manip_8h.html">manip.h</a> <a class="el" href="manip_8h.html#a5978a28c40383af89c24f7c9548d1f68" title="vende una determinata carta scelta dalla combo box e ne azzera i parametri">vendi_carta</a> che ritorna un valore booleano nel caso la vendita sia riuscita o meno.  <a href="#a9d7117f8872f56288ed064d160d15fce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#aae50511be5e791b825d3c92a3b316124">handler_scambia_carte</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che apre la dialog selezionare il giocatore con cui iniziare lo scambio.  <a href="#aae50511be5e791b825d3c92a3b316124"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ae47f29621bde1d5e31ce7be8dc948d68">handler_inizia_scambio</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che si occupa di gestire controllare che la stringa inserita nella entry sia realmentte il nome di un giocatore e fa partire la finestra di scambio in caso che il controllo ritorni valore positivo, utilizza la funzione fornita da <a class="el" href="manip_8h.html">manip.h</a> <a class="el" href="manip_8h.html#a52910ca91e612336a4b34570ba9527fd" title="setaccia all&#39;interno della lista circolare tutti i nomi dei giocatori andando a vedere se uno di quel...">cerca_nome</a>.  <a href="#ae47f29621bde1d5e31ce7be8dc948d68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a5b2a11f504e563774a051443cee91177">handler_effettua_scambio</a> (GtkButton *button, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che si occupa del vero scambio delle carte attivato alla pressione del pulsante scambia e riuscito se e solo se entrambi i giocatori hanno selezionato qualcosa dalle relative ComboBox contenenti l'elenco delle proprietàk, utilizza la funzione fornita dall'interfaccia di ::manip.h <a class="el" href="manip_8h.html#aee985d4810ff075cee3ae81a02a7fccc" title="effettua lo scambio delle carte tra 2 giocatori">effettua_scambio</a>.  <a href="#a5b2a11f504e563774a051443cee91177"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a9970e16780dbe1474d2d48d67641b3ad">handler_salva_partita</a> (GtkMenuItem *menuitem, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Segnale che si occupa del salvattaggio della partita utilizzando la funzione <a class="el" href="fileIO_8h.html#a61b561b9f290209743c9fd477feca873" title="salva la partita corrente sul file salva_partita.txt">salva_partita</a> fornita dal l'interfaccia del modulo <a class="el" href="fileIO_8h.html">fileIO.h</a> e la funzione ::mostra_messaggi per comunicare all'utente l'avvenuta riuscita o meno del salvataggio.  <a href="#a9970e16780dbe1474d2d48d67641b3ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a33b90e8785aa764df2cf850c721ce84f">handler_carica_partita</a> (GtkMenuItem *menuitem, gpointer data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">segnale che si occupa della carica della partita utilizzando la funzione <a class="el" href="fileIO_8h.html#a2dc2dd9d739642232c38557a1fe9803d" title="carica l&#39;ultima partita salvata">carica_partita</a> fornita dall'interfaccia del modulo <a class="el" href="fileIO_8h.html">fileIO.h</a> utilizza le funzioni ::mostra_messaggi per comunicare con l'utente l'avvenuto caricamento o meno.  <a href="#a33b90e8785aa764df2cf850c721ce84f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ac59b30dcb0091dee449d27aa558f9695">handler_visualizza_regole</a> (GtkMenuItem *menuitem, gpointer data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Main del programma, carica subito dal file di setup i valori delle carte nell'array tavola utilizzando <a class="el" href="fileIO_8h.html#a551dc65f05529fe5f12600a78cb7a497" title="carico l&#39;array con il quale è implementata la struttura dati carta_t con valori che si trovano in fil...">carica_board</a> funzione fornita dall'interfaccia di <a class="el" href="fileIO_8h.html">fileIO.h</a> inizializza la sensibilità dei pulsanti tramite la funzione inizializza_pulsanti aggiorna la label del credito residuo utilizzando la funzione aggiorna_label_credito.  <a href="#a0ddf1224851353fc92bfbff6f499fa97"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variabili</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">GtkBuilder *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#afa501dbb63ae6077ac8db76b560de42b">builder</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creazione dell'oggetto builder che permette di interaggire con la GUI.  <a href="#afa501dbb63ae6077ac8db76b560de42b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structturno__t.html">turno_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e">punta_turni</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato momento  <a href="#ab1d7738acc116343f76e7010f1721a8e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcarta__t.html">carta_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a">tavola</a> [<a class="el" href="strutta__dati_8h.html#ad43f8c91bcd12ba9c244c810b7933c0a">MAX_BOARD</a>]</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementazione tramite array delle struttura dati <a class="el" href="structcarta__t.html" title="struttura dati che mi rappresenta una carta con tutte la carattestiche ad essa connesse.">carta_t</a> mi rappresenta l'insieme delle carte o più precisamente l'insieme delle aziende acquistabili e non all'interno del gioco.  <a href="#acfee36e499475b8e57d156c364e4c84a"></a><br/></td></tr>
</table>
<hr/><h2>Documentazione delle funzioni</h2>
<a class="anchor" id="ad7b1cc6a2e69adc75a55809282cbe19d"></a><!-- doxytag: member="mono_main.cpp::handler_2_giocatori" ref="ad7b1cc6a2e69adc75a55809282cbe19d" args="(GtkButton *button, gpointer user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#ad7b1cc6a2e69adc75a55809282cbe19d">handler_2_giocatori</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che permette di scegliere solo tra i primi 2 personaggi nel caso si giochi in 2 soli giocatori. </p>
<div class="fragment"><pre class="fragment">{
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;bill&quot;</span>)),<span class="keyword">false</span>);
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mark&quot;</span>)),<span class="keyword">false</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="abdc315fd26f6c44dd5425989015b936b"></a><!-- doxytag: member="mono_main.cpp::handler_3_giocatori" ref="abdc315fd26f6c44dd5425989015b936b" args="(GtkButton *button, gpointer user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#abdc315fd26f6c44dd5425989015b936b">handler_3_giocatori</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>segnale che rende utilizzabile i primi 3 personaggi agli utenti (solo per 3 giocatori) </p>
<div class="fragment"><pre class="fragment">{
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;bill&quot;</span>)),<span class="keyword">true</span>);
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mark&quot;</span>)),<span class="keyword">false</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac4c9a75fdbed28903250565c566feb7c"></a><!-- doxytag: member="mono_main.cpp::handler_4_giocatori" ref="ac4c9a75fdbed28903250565c566feb7c" args="(GtkButton *button, gpointer user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#ac4c9a75fdbed28903250565c566feb7c">handler_4_giocatori</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>segnale che rende utilizzabile il quarto personaggio all'utente (solo in caso di scelta di 4 giocatore) </p>
<div class="fragment"><pre class="fragment">{
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mark&quot;</span>)),<span class="keyword">true</span>);
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;bill&quot;</span>)),<span class="keyword">true</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a90b53f2b08ce7da0764ae3a27ff4e579"></a><!-- doxytag: member="mono_main.cpp::handler_cambia_ipo" ref="a90b53f2b08ce7da0764ae3a27ff4e579" args="(GtkComboBox *widget, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a90b53f2b08ce7da0764ae3a27ff4e579">handler_cambia_ipo</a> </td>
          <td>(</td>
          <td class="paramtype">GtkComboBox *&#160;</td>
          <td class="paramname"><em>widget</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che in base alla scelta fatta nella ComboBox fa variare la label contenente il valore di vendita. </p>
<div class="fragment"><pre class="fragment">{
        <span class="keyword">const</span> <span class="keywordtype">char</span> *nome=gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(widget));
        <span class="keywordtype">int</span> i;
        <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="strutta__dati_8h.html#ad43f8c91bcd12ba9c244c810b7933c0a" title="massimo numero di carte presenti nel gioco">MAX_BOARD</a>;i++)
                <span class="keywordflow">if</span>(strcmp(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[i].nome_carta,nome)==0)
                {
                        ostringstream oss;
                        oss&lt;&lt;<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[i].<a class="code" href="structcarta__t.html#adee500680ef369bb67e84279b0979aed">valore_ipoteca</a>;
                        gtk_label_set_text(GTK_LABEL(data),oss.str().c_str());
                }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a33b90e8785aa764df2cf850c721ce84f"></a><!-- doxytag: member="mono_main.cpp::handler_carica_partita" ref="a33b90e8785aa764df2cf850c721ce84f" args="(GtkMenuItem *menuitem, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a33b90e8785aa764df2cf850c721ce84f">handler_carica_partita</a> </td>
          <td>(</td>
          <td class="paramtype">GtkMenuItem *&#160;</td>
          <td class="paramname"><em>menuitem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>segnale che si occupa della carica della partita utilizzando la funzione <a class="el" href="fileIO_8h.html#a2dc2dd9d739642232c38557a1fe9803d" title="carica l&#39;ultima partita salvata">carica_partita</a> fornita dall'interfaccia del modulo <a class="el" href="fileIO_8h.html">fileIO.h</a> utilizza le funzioni ::mostra_messaggi per comunicare con l'utente l'avvenuto caricamento o meno. </p>
<p>Utilizza le funzioni ::aggiorna_label_credito, ::setta_label_immagine, ::inizializza_pulsanti per modificare gli oggetti della GUI </p>
<div class="fragment"><pre class="fragment">{
        <span class="keywordflow">if</span>(!<a class="code" href="fileIO_8cpp.html#a2dc2dd9d739642232c38557a1fe9803d" title="carica l&#39;ultima partita salvata">carica_partita</a>(testa,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,num_gc,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>))
                mostra_messaggi(<span class="stringliteral">&quot;Errore in fase di caricamento della partita&quot;</span>);
        <span class="keywordflow">else</span>
        {
                assert(testa!=NULL);
                
                mostra_messaggi(<span class="stringliteral">&quot;Caricamento completato&quot;</span>);
                <a class="code" href="structturno__t.html" title="Struttura dati che rappresenta un turno all&#39;interno del quale si trovano il nome del giocatore di che...">turno_t</a> *app1=testa;
                <a class="code" href="structturno__t.html" title="Struttura dati che rappresenta un turno all&#39;interno del quale si trovano il nome del giocatore di che...">turno_t</a> *ultimo=<a class="code" href="manip_8cpp.html#aa68fd72a8ba982beecef16de1319006e" title="Questa funzione ritorna il puntatore all&#39;ultimo elemento della lista dei turni.">ultimo_turno</a>(testa);
                ultimo-&gt;<a class="code" href="structturno__t.html#a4602be8011af61e9fab3ddd123406c17">pross</a>=NULL;
                
                <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;carica partita è ritornata un valore corretto&quot;</span>&lt;&lt;endl);
                
                <span class="keywordflow">while</span>(app1!=NULL)
                {
                        cout&lt;&lt;<span class="stringliteral">&quot;crea widget&quot;</span>&lt;&lt;endl;
                        GtkWidget *widget=scegli_widget(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,app1);
                        ripristina_posizione_pedine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,widget,app1-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>,app1-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>);
                        app1=app1-&gt;<a class="code" href="structturno__t.html#a4602be8011af61e9fab3ddd123406c17">pross</a>;
                }
                ultimo-&gt;<a class="code" href="structturno__t.html#a4602be8011af61e9fab3ddd123406c17">pross</a>=testa;
                
                setta_label_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
                
                aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
                
                inizializza_pulsanti(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="keyword">true</span>);
                
                gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dichiara_fallimento&quot;</span>)),<span class="keyword">true</span>);
        }
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Il caricamento della partita ha avuto successo&quot;</span>&lt;&lt;endl);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad90b3c3c7119a0c9edd6ee48d512e2ca"></a><!-- doxytag: member="mono_main.cpp::handler_compra_azioni" ref="ad90b3c3c7119a0c9edd6ee48d512e2ca" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#ad90b3c3c7119a0c9edd6ee48d512e2ca">handler_compra_azioni</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>segnale che permette di comprare le azioni di una certa azienda nel caso in cui si rispettino alcune condizioni chiave </p>
<div class="fragment"><pre class="fragment">{
        <a class="code" href="strutta__dati_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;INIZIO DEBUG COMPRA AZIONI: &quot;</span>&lt;&lt;endl);
        
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a4900c3bc5f551c9d4983509d620be2e9">prop</a>!=&amp;(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>))
        {
                mostra_messaggi(<span class="stringliteral">&quot;non possiedi questa carta&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a74a9b5d269efd9d8e3a5bd39f4fc381f">colore</a>==<a class="code" href="strutta__dati_8h.html#afe13424a6e8bc9b5ab4e4a5676e087a8a9b691ca253b009f6c549a080f2442754">SC</a>)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Questa carta non offre la possibilita di comprare azioni&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keywordtype">bool</span> controllo=<a class="code" href="manip_8cpp.html#a469556562fb87592ac10496fd3dfbb2e" title="Funzione utilizzata per andare a verificare che un determinato giocatore abbia o meno tutte le carte ...">controlla_colore_carte</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>);
        <span class="keywordflow">if</span>(!controllo)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Non puoi comprare azioni senza possedere tutte le aziende dello stesso colore&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keyword">const</span> <span class="keywordtype">char</span> *num_az=gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;num_az&quot;</span>)));
        istringstream is(num_az);
        <span class="keywordtype">char</span> carattere[<a class="code" href="strutta__dati_8h.html#a669918f54dab8982e88cc3c15a03d9d3" title="dimensione massima delle stringhe">DIM_STRINGHE</a>];
        <span class="keywordtype">int</span> num;
        is&gt;&gt;carattere;
        
        <span class="comment">//inserire qui condizione in caso di entry vuota</span>
        <span class="keywordflow">if</span>(strcmp(carattere,<span class="stringliteral">&quot;&quot;</span>)==0)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Occorre inserire un valore nella entry&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keywordflow">else</span>
        {
                <span class="comment">//cout&lt;&lt;&quot;Carattere 1: &quot;&lt;&lt;carattere[0]&lt;&lt;&quot; carattere 2: &quot;&lt;&lt;carattere[1]&lt;&lt;endl;</span>
                <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0;carattere[i]!=<span class="charliteral">&#39;\0&#39;</span> &amp;&amp; i&lt;<a class="code" href="strutta__dati_8h.html#a669918f54dab8982e88cc3c15a03d9d3" title="dimensione massima delle stringhe">DIM_STRINGHE</a>;i++)
                        <span class="keywordflow">if</span>(carattere[i]&lt;<span class="charliteral">&#39;0&#39;</span> || carattere[i]&gt;<span class="charliteral">&#39;9&#39;</span>)
                        {       
                                mostra_messaggi(<span class="stringliteral">&quot;Occorre inserire valori numerici&quot;</span>);
                                <span class="keywordflow">return</span>;
                        }
                num=atoi(carattere);
                
                <a class="code" href="strutta__dati_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;numero di azioni inserite: &quot;</span>&lt;&lt;num&lt;&lt;endl);
        }
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>&lt;(num*<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a4962906c2592c2f4844270aed03e7d9b">val_azioni</a>))
                {
                        mostra_messaggi(<span class="stringliteral">&quot;credito insufficiente per comprare nuove azioni&quot;</span>);
                        <span class="keywordflow">return</span>;
                }
        tavola[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].num_azioni=num;
        <span class="comment">//cout&lt;&lt;tavola[punta_turni-&gt;posizione_nelle_carte].num_azioni&lt;&lt;endl;</span>
        <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>-=num*tavola[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].val_azioni;
        
        <a class="code" href="strutta__dati_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;nuovo valore residuo: &quot;</span>&lt;&lt;<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>&lt;&lt;endl);
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Modifica parametri completata&quot;</span>&lt;&lt;endl);
        
        GtkWidget *ins_dialog = GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;affitto&quot;</span>));
        gtk_widget_show_all(ins_dialog);
        
        setta_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<span class="stringliteral">&quot;Proprietario&quot;</span>);
        
        ostringstream oss;
        
        oss&lt;&lt;<span class="stringliteral">&quot;Hai comprato &quot;</span>&lt;&lt;num&lt;&lt;<span class="stringliteral">&quot; azioni spesa totale: &quot;</span>&lt;&lt;num*tavola[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].val_azioni;
        gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mex_affitto&quot;</span>)),oss.str().c_str());
        
        <span class="comment">//cout&lt;&lt;punta_turni-&gt;giocatore.valore_residuo&lt;&lt;endl;</span>
        
        aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
        
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Compra azioni completata con successo&quot;</span>&lt;&lt;endl);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3c9df4ae98fe5803e248e2ad11a90d96"></a><!-- doxytag: member="mono_main.cpp::handler_compra_carta" ref="a3c9df4ae98fe5803e248e2ad11a90d96" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a3c9df4ae98fe5803e248e2ad11a90d96">handler_compra_carta</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che permette di compra una determinata carta a costo che alcune condizioni siano rispettate, contiene anche un controllo che stabilisce se si posseggono tutte le carte dello stesso colore. </p>
<div class="fragment"><pre class="fragment">{
        <a class="code" href="strutta__dati_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;DEBUG COMPRA CARTA: &quot;</span>&lt;&lt;endl)
        if(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;posizione_nelle_carte].prop==&amp;(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;giocatore))
        {
                mostra_messaggi(<span class="stringliteral">&quot;Possiedi già questa carta&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>&lt;<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a62b7fe7b8c645137f9488800ab45c1a1">prezzo</a>)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Il tuo credito è insufficiente&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a74a9b5d269efd9d8e3a5bd39f4fc381f">colore</a>==<a class="code" href="strutta__dati_8h.html#afe13424a6e8bc9b5ab4e4a5676e087a8a3dbd1016ea99d087d747530418b89a01">NC</a> || 
                <a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a4900c3bc5f551c9d4983509d620be2e9">prop</a>!=NULL)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Questa non è una carta acquistabile&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a4900c3bc5f551c9d4983509d620be2e9">prop</a>=&amp;(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>);
        
        <a class="code" href="strutta__dati_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;proprietario: &quot;</span>&lt;&lt;endl);
        <a class="code" href="strutta__dati_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a4900c3bc5f551c9d4983509d620be2e9">prop</a>-&gt;<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>&lt;&lt;endl);
        
        ostringstream oss;
        oss&lt;&lt;<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a4900c3bc5f551c9d4983509d620be2e9">prop</a>-&gt;<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>;
        gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;prop&quot;</span>)),oss.str().c_str());
        
        <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a5bb2d982a9ea44e28636477c57feac0e">conta_propr</a>++;
        <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>-=<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a62b7fe7b8c645137f9488800ab45c1a1">prezzo</a>;
        
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Modifiche apportate ai parametri del giocatore completate&quot;</span>&lt;&lt;endl);
        
        aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
        
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a74a9b5d269efd9d8e3a5bd39f4fc381f">colore</a>!=<a class="code" href="strutta__dati_8h.html#afe13424a6e8bc9b5ab4e4a5676e087a8a9b691ca253b009f6c549a080f2442754">SC</a>)
        {
                <span class="keywordtype">bool</span> carte_st_colore=<a class="code" href="manip_8cpp.html#a469556562fb87592ac10496fd3dfbb2e" title="Funzione utilizzata per andare a verificare che un determinato giocatore abbia o meno tutte le carte ...">controlla_colore_carte</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>);
                <span class="keywordflow">if</span>(carte_st_colore)
                {
                        mostra_messaggi(<span class="stringliteral">&quot;Possiedi tutte le proprità dello stesso colore, ora puoi comprare le azioni&quot;</span>);
                        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;compra_az&quot;</span>)),<span class="keyword">true</span>);
                }
        }
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Acquisto completato con successo&quot;</span>&lt;&lt;endl);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a636d53fb578a95c7e1500c2272b3d7c0"></a><!-- doxytag: member="mono_main.cpp::handler_dichiara_fallimento" ref="a636d53fb578a95c7e1500c2272b3d7c0" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a636d53fb578a95c7e1500c2272b3d7c0">handler_dichiara_fallimento</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale associato al pulsante dichiara fallimento che permette comunica la propria sconfitta o il proprio ritiro, il giocatore che preme tale pulsante viene estratto dalla lista e si contralla che sia rimasto un solo giocatore in tal caso quello risulterà essere il vincitore della partita. </p>
<div class="fragment"><pre class="fragment">{
        GtkWidget *widget=scegli_widget(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);
        
        gtk_widget_set_visible(widget,<span class="keyword">false</span>);
        
        <a class="code" href="manip_8cpp.html#a64c974f204adf30db0008dbd43e948b2" title="svuota tutte le proprietà di un certo giocatore che decide o è costretto a dichiarare fallimento util...">vendi_tutto</a>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);
        
        <a class="code" href="manip_8cpp.html#a8c0a999efb500e37328c62369aac5c4c" title="funzione utilizzata dal segnale handler_dichiara_fallimento che estrae il giocatore dalla lista dei t...">estrai_giocatore</a>(testa,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,num_gc);
        
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Giocatore estratto dalla lista con successo&quot;</span>&lt;&lt;endl);
        
        <a class="code" href="manip_8cpp.html#a39490d45dbd0caa54d671203f07e1a78" title="Funzione &quot;di Debugging&quot; che permette di stampare l&#39;intera lista dei turni.">stampa_turni</a>(testa);
        
        setta_label_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        
        <span class="keywordflow">if</span>(num_gc==1)
        {
                inizializza_pulsanti(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="keyword">false</span>);
                GtkWidget *ins_dialog = GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;affitto&quot;</span>));
                gtk_widget_show_all(ins_dialog);
                setta_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<span class="stringliteral">&quot;Proprietario&quot;</span>);
                ostringstream oss;
                
                oss&lt;&lt;<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>&lt;&lt;<span class="stringliteral">&quot; vince la partita!&quot;</span>;
                
                gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mex_affitto&quot;</span>)),oss.str().c_str());
                oss.str(<span class="stringliteral">&quot;&quot;</span>);
                oss.clear();
                gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dichiara_fallimento&quot;</span>)),<span class="keyword">false</span>);
                <a class="code" href="manip_8cpp.html#a64c974f204adf30db0008dbd43e948b2" title="svuota tutte le proprietà di un certo giocatore che decide o è costretto a dichiarare fallimento util...">vendi_tutto</a>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);
                
                aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
        }
        
        gtk_widget_hide(gtk_widget_get_toplevel(GTK_WIDGET(button)));
        
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Gestione fallimenti completata in maniera ottimale&quot;</span>&lt;&lt;endl);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5b2a11f504e563774a051443cee91177"></a><!-- doxytag: member="mono_main.cpp::handler_effettua_scambio" ref="a5b2a11f504e563774a051443cee91177" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a5b2a11f504e563774a051443cee91177">handler_effettua_scambio</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che si occupa del vero scambio delle carte attivato alla pressione del pulsante scambia e riuscito se e solo se entrambi i giocatori hanno selezionato qualcosa dalle relative ComboBox contenenti l'elenco delle proprietàk, utilizza la funzione fornita dall'interfaccia di ::manip.h <a class="el" href="manip_8h.html#aee985d4810ff075cee3ae81a02a7fccc" title="effettua lo scambio delle carte tra 2 giocatori">effettua_scambio</a>. </p>
<p>Utilizza inoltre le funzioni ::carica_combo e ::rimuovi_combo per gestire la combo svutandola e ricaricandola </p>
<div class="fragment"><pre class="fragment">{
        GtkComboBoxText *combo1=GTK_COMBO_BOX_TEXT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;combo_gc_1&quot;</span>));
        GtkComboBoxText *combo2=GTK_COMBO_BOX_TEXT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;combo_gc_2&quot;</span>));
        
        <span class="keyword">const</span> <span class="keywordtype">char</span> *nome_carta1=gtk_combo_box_text_get_active_text(combo1);
        
        <span class="keywordflow">if</span>(strcmp(nome_carta1,<span class="stringliteral">&quot;&quot;</span>)==0){
                mostra_messaggi(<span class="stringliteral">&quot;Scegliere una carta da scambiare dalla prima lista&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keyword">const</span> <span class="keywordtype">char</span> *nome_carta2=gtk_combo_box_text_get_active_text(combo2);
        <span class="keywordflow">if</span>(strcmp(nome_carta2,<span class="stringliteral">&quot;&quot;</span>)==0){
                mostra_messaggi(<span class="stringliteral">&quot;Sceglire una carta da scambiare dalla seconda lista&quot;</span>);
                <span class="keywordflow">return</span>;
                }
                
        <span class="keywordtype">int</span> indice_carta1;
        <span class="keywordtype">int</span> indice_carta2;
        <a class="code" href="manip_8cpp.html#aee985d4810ff075cee3ae81a02a7fccc" title="effettua lo scambio delle carte tra 2 giocatori">effettua_scambio</a>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,nome_carta1,nome_carta2,indice_carta1,indice_carta2);
        
        assert(indice_carta1!=indice_carta2);
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Lo scambio è ritornato con successo&quot;</span>&lt;&lt;endl);
        
        rimuovi(combo1,<span class="stringliteral">&quot;entry_gc1&quot;</span>,<span class="stringliteral">&quot;valore_carta_gc_1&quot;</span>);
        
        rimuovi(combo2,<span class="stringliteral">&quot;entry_gc2&quot;</span>,<span class="stringliteral">&quot;valore_carta_gc_2&quot;</span>);

        carica_combo(combo1,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);
        
        carica_combo(combo2,app);
        
        setta_label_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        
        <span class="keywordtype">bool</span> verif_colore_gc1=<a class="code" href="manip_8cpp.html#a469556562fb87592ac10496fd3dfbb2e" title="Funzione utilizzata per andare a verificare che un determinato giocatore abbia o meno tutte le carte ...">controlla_colore_carte</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,indice_carta2);
        <span class="keywordtype">bool</span> verif_colore_gc2=<a class="code" href="manip_8cpp.html#a469556562fb87592ac10496fd3dfbb2e" title="Funzione utilizzata per andare a verificare che un determinato giocatore abbia o meno tutte le carte ...">controlla_colore_carte</a>(app,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,indice_carta1);
        
        <span class="comment">//cout&lt;&lt;&quot;Verifica cl: &quot;&lt;&lt;verif_colore_gc1&lt;&lt;endl;</span>
        <span class="keywordflow">if</span>(verif_colore_gc1)
        {
                <span class="keywordtype">char</span> str[<a class="code" href="strutta__dati_8h.html#a989e38486ed69cc55a3b417054ae5b3c" title="massima dimensione di una stringa per i messaggi all&#39;utente">DIM_MESSAGGIO</a>];
                strcpy(str,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>);
                strcat(str,<span class="stringliteral">&quot; ora possiedi tutte le carte di quel colore!&quot;</span>);
                <span class="comment">//cout&lt;&lt;str&lt;&lt;endl;</span>
                mostra_messaggi(str);
        }
                
        <span class="keywordflow">if</span>(verif_colore_gc2)
        {
                <span class="keywordtype">char</span> str[<a class="code" href="strutta__dati_8h.html#a989e38486ed69cc55a3b417054ae5b3c" title="massima dimensione di una stringa per i messaggi all&#39;utente">DIM_MESSAGGIO</a>];
                strcpy(str,app-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>);
                strcat(str,<span class="stringliteral">&quot; ora possiedi tutte le carte di quel colore!&quot;</span>);
                mostra_messaggi(str);
        }
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Lo scambio è stato completato&quot;</span>&lt;&lt;endl);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab0fb1abffab08bda22d1da4db1f6d6be"></a><!-- doxytag: member="mono_main.cpp::handler_fine_turno" ref="ab0fb1abffab08bda22d1da4db1f6d6be" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#ab0fb1abffab08bda22d1da4db1f6d6be">handler_fine_turno</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che gestisce il passaggio del turno e tutto quello ad esso collegato aggioranamento delle label delle immagine e controllo delle prigione per il giocatore successivo che dovrà pagare la cauzione. </p>
<div class="fragment"><pre class="fragment">{
        <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>=<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a4602be8011af61e9fab3ddd123406c17">pross</a>;
        
        setta_label_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        
        aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
        
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dado&quot;</span>)),<span class="keyword">true</span>);
        
        
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a4d6e0cf716e9d00ef91937209d8e03c8">prigione</a>)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Devi pagare 500 di cauzione&quot;</span>);
                <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>-=500;
                aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
                <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a4d6e0cf716e9d00ef91937209d8e03c8">prigione</a>=<span class="keyword">false</span>;
                controlla_fallimento(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        }
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae47f29621bde1d5e31ce7be8dc948d68"></a><!-- doxytag: member="mono_main.cpp::handler_inizia_scambio" ref="ae47f29621bde1d5e31ce7be8dc948d68" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#ae47f29621bde1d5e31ce7be8dc948d68">handler_inizia_scambio</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che si occupa di gestire controllare che la stringa inserita nella entry sia realmentte il nome di un giocatore e fa partire la finestra di scambio in caso che il controllo ritorni valore positivo, utilizza la funzione fornita da <a class="el" href="manip_8h.html">manip.h</a> <a class="el" href="manip_8h.html#a52910ca91e612336a4b34570ba9527fd" title="setaccia all&#39;interno della lista circolare tutti i nomi dei giocatori andando a vedere se uno di quel...">cerca_nome</a>. </p>
<div class="fragment"><pre class="fragment">{
        GtkEntry *entry=GTK_ENTRY(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;giocatore_scambio_2&quot;</span>));
        
        <span class="keyword">const</span> <span class="keywordtype">char</span> *nome=gtk_entry_get_text(entry);
        
        <span class="keywordflow">if</span>(strcmp(nome,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>)==0)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Non puoi scambiare carte con te stesso!&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        app=testa;
        <span class="keywordtype">bool</span> trovato=<a class="code" href="manip_8cpp.html#a52910ca91e612336a4b34570ba9527fd" title="setaccia all&#39;interno della lista circolare tutti i nomi dei giocatori andando a vedere se uno di quel...">cerca_nome</a>(testa,nome,app,num_gc);
        
        <span class="keywordflow">if</span>(!trovato)
                mostra_messaggi(<span class="stringliteral">&quot;Giocatore inserito non presente&quot;</span>);
        <span class="keywordflow">else</span>
                {
                        gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;nome_giocatore1&quot;</span>)),<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>);
                        gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;nome_giocatore2&quot;</span>)),nome);
                        
                        GtkWidget *window=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;scambia_carte&quot;</span>));
                        gtk_widget_show_all(window);
                        
                        GtkComboBoxText *combo1=GTK_COMBO_BOX_TEXT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;combo_gc_1&quot;</span>));
                        GtkComboBoxText *combo2=GTK_COMBO_BOX_TEXT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;combo_gc_2&quot;</span>));
                        
                        rimuovi(combo1,<span class="stringliteral">&quot;entry_gc1&quot;</span>,<span class="stringliteral">&quot;valore_carta_gc_1&quot;</span>);
                        rimuovi(combo2,<span class="stringliteral">&quot;entry_gc2&quot;</span>,<span class="stringliteral">&quot;valore_carta_gc_2&quot;</span>);
                        
                        carica_combo(combo1,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);
                        carica_combo(combo2,app);
                }       
        gtk_widget_hide(gtk_widget_get_toplevel(GTK_WIDGET(button)));
}
</pre></div>
</div>
</div>
<a class="anchor" id="af8a61bf93761bebe15ed19b51c33062e"></a><!-- doxytag: member="mono_main.cpp::handler_lancia_dado" ref="af8a61bf93761bebe15ed19b51c33062e" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#af8a61bf93761bebe15ed19b51c33062e">handler_lancia_dado</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che gestisce il lancio dei dadi tutti gli spostamenti al lancio connessi tramite la funzione del file <a class="el" href="manip_8cpp.html">manip.cpp</a> il settaggio dei tutte le label e immagini dovuto allo spostamento il controllo sulla prigione e sugli imprevisti e probabilità, il pagamento di un determinato affito al proprietario della carta su cui si è andati a posizionare. </p>
<div class="fragment"><pre class="fragment">{
        <span class="keywordtype">int</span> dado_1;
        <span class="keywordtype">int</span> dado_2;
        <span class="keywordtype">int</span> dado=<a class="code" href="manip_8cpp.html#a4b106682b889a101e65b1337c957f66f" title="Gestisce il lancio del dato attraverso la generazione di 2 numeri pseudocasuali gestisce lo spostamen...">gestione_spostamenti</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>,dado_1,dado_2);
        
        <a class="code" href="strutta__dati_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;Dado: &quot;</span>&lt;&lt;dado&lt;&lt;endl);
        
        GtkImage *dado1=GTK_IMAGE(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dado1&quot;</span>));
        aggiorna_immagine_dadi(dado1,dado_1);
        
        GtkImage *dado2=GTK_IMAGE(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dado2&quot;</span>));
        aggiorna_immagine_dadi(dado2,dado_2);
        
        
        GtkWidget *widget=scegli_widget(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);
        
        
        GtkLayout *layout=GTK_LAYOUT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;layout1&quot;</span>));
        
        <span class="keywordflow">if</span>(strcmp(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a07384c80fb3eddd513af82d19656e50a">nome_carta</a>,<span class="stringliteral">&quot;Prigione&quot;</span>)==0)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Sei stato scoperto a violare i server del governo! Vai in prigione&quot;</span>);
                <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>=15;
                <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>=450;
                <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a4d6e0cf716e9d00ef91937209d8e03c8">prigione</a>=<span class="keyword">true</span>;
                <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a326ce226c3caea11b5c503f13ad566f9">move</a>=<a class="code" href="strutta__dati_8h.html#acabcc1602d06c0bebca9dfcc4a8b31b1a898fd7abd6aae10a03fc8f61543e1ab6">SX</a>;
                <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>=10;
        }
        
        <span class="keywordflow">if</span>(strcmp(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a07384c80fb3eddd513af82d19656e50a">nome_carta</a>,<span class="stringliteral">&quot;imprevisti&quot;</span>)==0 || 
                strcmp(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a07384c80fb3eddd513af82d19656e50a">nome_carta</a>,<span class="stringliteral">&quot;probabilita&quot;</span>)==0)
                {
                <a class="code" href="imp__prob_8cpp.html#a2e7a22c47e516f26e94766025518ea80" title="Funzione di gestione degli imprevisti e probabilità decide cosa scegliere in base alla carta su cui i...">gestione_imprevisti_probabilita</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a07384c80fb3eddd513af82d19656e50a">nome_carta</a>);
                }
                
        
        gtk_layout_move(layout,widget,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>);
        
        setta_label_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        
        <span class="keywordtype">bool</span> penalita=<span class="keyword">false</span>;
        
        <span class="keywordtype">int</span> costo_affitto;
        <span class="keywordtype">bool</span> pagato=<a class="code" href="manip_8cpp.html#a273c4e4628fe9efe3ae42b002d08d3ed" title="Funzione che gestisce il pagamento dell&#39;affitto da parte di un certo utente nel caso in cui esso dove...">pagamento_affitto</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,penalita,costo_affitto);
        
        <span class="keywordflow">if</span>(pagato)
        {       
                GtkWidget *ins_dialog = GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;affitto&quot;</span>));
                gtk_widget_show_all(ins_dialog);
                setta_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<span class="stringliteral">&quot;Proprietario&quot;</span>);
                ostringstream oss;
                <span class="keywordflow">if</span>(penalita)
                        oss&lt;&lt;<span class="stringliteral">&quot;Devi pagare alla banca la penalità di &quot;</span>&lt;&lt;<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#aee3e414144a734939b9fd8f7f3ac5bc4">affitto</a>;
                        
                <span class="keywordflow">else</span>
                
                oss&lt;&lt;<span class="stringliteral">&quot;Devi pagare a &quot;</span>&lt;&lt;<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>[<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a14f0b707e59a33f4fc4051656e181cd4" title="variabile che mi stabilisce su quale carta un certo giocatore si trova è l&#39;elemento di unione tra la ...">posizione_nelle_carte</a>].<a class="code" href="structcarta__t.html#a4900c3bc5f551c9d4983509d620be2e9">prop</a>-&gt;<a class="code" href="structgiocatore__t.html#ab5545bf977dd406e5e1c0686b602141c">nome</a>&lt;&lt;<span class="stringliteral">&quot; l&#39;affitto di &quot;</span>&lt;&lt;costo_affitto;
                
                gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mex_affitto&quot;</span>)),oss.str().c_str()); 
        }
        
        aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
        
        controlla_fallimento(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dado&quot;</span>)),<span class="keyword">false</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="af84d92602708d3414c177466ca706792"></a><!-- doxytag: member="mono_main.cpp::handler_new_match" ref="af84d92602708d3414c177466ca706792" args="(GtkMenuItem *menuitem, gpointer user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#af84d92602708d3414c177466ca706792">handler_new_match</a> </td>
          <td>(</td>
          <td class="paramtype">GtkMenuItem *&#160;</td>
          <td class="paramname"><em>menuitem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che apre la dialogbox per la scelta dei personaggi e azzera le proprietà della precendente partita. </p>
<div class="fragment"><pre class="fragment">{
        GtkWidget *ins_dialog = GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;scegli_personaggio&quot;</span>));
        gtk_widget_show_all(ins_dialog);
        <span class="keywordflow">if</span>(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>, <span class="stringliteral">&quot;2 giocatori&quot;</span>))))
        {
                gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;bill&quot;</span>)),<span class="keyword">false</span>);
                gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mark&quot;</span>)),<span class="keyword">false</span>);
        }
        
        <span class="comment">//azzera le proprieta accumulate nella precendente partita</span>
        <a class="code" href="manip_8cpp.html#ab1c67092b1e1e7a43c46eb7073cd7a88" title="azzera completamente tutte le proprietà di ogni giocatore, utilizzata dal segnale handler_new_match...">azzera_proprieta</a>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>);
        
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dichiara_fallimento&quot;</span>)),<span class="keyword">true</span>);
        
        <a class="code" href="strutta__dati_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;inizia nuova partita completato con successo&quot;</span>&lt;&lt;endl);
}
</pre></div>
</div>
</div>
<a class="anchor" id="adb960475c9fe80d1220e21a605252b00"></a><!-- doxytag: member="mono_main.cpp::handler_ok_personaggi" ref="adb960475c9fe80d1220e21a605252b00" args="(GtkButton *button, gpointer user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#adb960475c9fe80d1220e21a605252b00">handler_ok_personaggi</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale di conferma dei personaggi scelti in base al numero di giocatori visualizza le miniature delle pedine e le sistema in posizione corretta di partenza. </p>
<div class="fragment"><pre class="fragment">{
        <a class="code" href="manip_8cpp.html#a60f1383c5a206a8150fdc5ec70b9e9cf" title="Elimina ogni elemento presente nella lista dei turni.">elimina_lista</a>(testa);
        controlla_radio(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        
        assert(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>&gt;0);
        
        <span class="keywordtype">bool</span> errore=<span class="keyword">false</span>;
        errore=acquisisci_nomi(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,errore);
        <span class="keywordflow">if</span>(errore)
                mostra_messaggi(<span class="stringliteral">&quot;Attenzione! Manca il nome a uno o più giocatori&quot;</span>);
        <span class="keywordflow">else</span>
        {
                inizializza_pulsanti(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="keyword">true</span>);
                setta_label_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
                
                GtkWidget *P1=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;P1&quot;</span>));
                ripristina_posizione_pedine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,P1,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>);
                
                GtkWidget *P2=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;P2&quot;</span>));
                ripristina_posizione_pedine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,P2,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>);
                
                <span class="keywordflow">if</span>(num_gc==3 || num_gc&gt;3){
                        GtkWidget *P3=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;P3&quot;</span>));
                        ripristina_posizione_pedine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,P3,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>);
                        }
                <span class="keywordflow">if</span>(num_gc==4){
                        GtkWidget *P4=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;P4&quot;</span>));
                        ripristina_posizione_pedine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,P4,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a95196c96b48b65663cac7c21e0fe91ca">coord_x</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a947c18dac8b4f4e8c9c982fe13ef9209">coord_y</a>);
                        }
        }
        gtk_widget_hide(gtk_widget_get_toplevel(GTK_WIDGET(button)));
        
        aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9970e16780dbe1474d2d48d67641b3ad"></a><!-- doxytag: member="mono_main.cpp::handler_salva_partita" ref="a9970e16780dbe1474d2d48d67641b3ad" args="(GtkMenuItem *menuitem, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a9970e16780dbe1474d2d48d67641b3ad">handler_salva_partita</a> </td>
          <td>(</td>
          <td class="paramtype">GtkMenuItem *&#160;</td>
          <td class="paramname"><em>menuitem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che si occupa del salvattaggio della partita utilizzando la funzione <a class="el" href="fileIO_8h.html#a61b561b9f290209743c9fd477feca873" title="salva la partita corrente sul file salva_partita.txt">salva_partita</a> fornita dal l'interfaccia del modulo <a class="el" href="fileIO_8h.html">fileIO.h</a> e la funzione ::mostra_messaggi per comunicare all'utente l'avvenuta riuscita o meno del salvataggio. </p>
<div class="fragment"><pre class="fragment">{
        <span class="keywordflow">if</span>(testa==NULL)
        {
                mostra_messaggi(<span class="stringliteral">&quot;impossibile salvare, nessuna partita in corso&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        <span class="keywordflow">if</span>(!<a class="code" href="fileIO_8cpp.html#a61b561b9f290209743c9fd477feca873" title="salva la partita corrente sul file salva_partita.txt">salva_partita</a>(testa,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,num_gc,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>))
                mostra_messaggi(<span class="stringliteral">&quot;Errore in fase di salvataggio della partita&quot;</span>);
        <span class="keywordflow">else</span>
                mostra_messaggi(<span class="stringliteral">&quot;Salvataggio completato&quot;</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aae50511be5e791b825d3c92a3b316124"></a><!-- doxytag: member="mono_main.cpp::handler_scambia_carte" ref="aae50511be5e791b825d3c92a3b316124" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#aae50511be5e791b825d3c92a3b316124">handler_scambia_carte</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che apre la dialog selezionare il giocatore con cui iniziare lo scambio. </p>
<div class="fragment"><pre class="fragment">{
        GtkWidget *ins_dialog=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;scelta_gc_scambio&quot;</span>));
        gtk_widget_show_all(ins_dialog);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9d7117f8872f56288ed064d160d15fce"></a><!-- doxytag: member="mono_main.cpp::handler_vendi_carta" ref="a9d7117f8872f56288ed064d160d15fce" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a9d7117f8872f56288ed064d160d15fce">handler_vendi_carta</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che gestisce la vendita delle carte alla banca utilizza la funzione del modulo <a class="el" href="manip_8h.html">manip.h</a> <a class="el" href="manip_8h.html#a5978a28c40383af89c24f7c9548d1f68" title="vende una determinata carta scelta dalla combo box e ne azzera i parametri">vendi_carta</a> che ritorna un valore booleano nel caso la vendita sia riuscita o meno. </p>
<div class="fragment"><pre class="fragment">{
        GtkComboBoxText *combo=GTK_COMBO_BOX_TEXT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;proprieta&quot;</span>));
        <span class="keyword">const</span> <span class="keywordtype">char</span> *nome=gtk_combo_box_text_get_active_text (combo);
        
        <span class="keywordtype">int</span> indice_carta;
        <span class="keywordtype">bool</span> vendita_riuscita=<a class="code" href="manip_8cpp.html#a5978a28c40383af89c24f7c9548d1f68" title="vende una determinata carta scelta dalla combo box e ne azzera i parametri">vendi_carta</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,nome,indice_carta);
        
        <span class="keywordflow">if</span>(!vendita_riuscita)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Devi selezionare una carta per potere vendere&quot;</span>);
                <span class="keywordflow">return</span>;
        }
        aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>);
        
        rimuovi(combo,<span class="stringliteral">&quot;combo_entry&quot;</span>,<span class="stringliteral">&quot;ipoteca&quot;</span>);
        
        carica_combo(combo,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);

        setta_label_immagine(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>);
        
        <span class="keywordtype">bool</span> verifica_st_cl=<a class="code" href="manip_8cpp.html#a469556562fb87592ac10496fd3dfbb2e" title="Funzione utilizzata per andare a verificare che un determinato giocatore abbia o meno tutte le carte ...">controlla_colore_carte</a>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>,<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,indice_carta);
        <span class="keywordflow">if</span>(!verifica_st_cl)
        {
                mostra_messaggi(<span class="stringliteral">&quot;Vendendo questa carta hai perso tutte le azioni anche sulle altre dello stesso colore&quot;</span>);
                <a class="code" href="manip_8cpp.html#a58a5452a4f98b1f91c457c8711c67d66">svuota_azioni_stesso_colore</a>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>,indice_carta);
        }
}
</pre></div>
</div>
</div>
<a class="anchor" id="aba0d8b30cd78f8b526e400cdb2619d88"></a><!-- doxytag: member="mono_main.cpp::handler_visualizza_carte" ref="aba0d8b30cd78f8b526e400cdb2619d88" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#aba0d8b30cd78f8b526e400cdb2619d88">handler_visualizza_carte</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>segnale che permette di visualizzare la dialog con l'elenco delle proprie carte </p>
<div class="fragment"><pre class="fragment">{
        GtkWidget *ins_dialog=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;visualizza_carte&quot;</span>));
        gtk_widget_show_all(ins_dialog);
        
        GtkComboBoxText *combo=GTK_COMBO_BOX_TEXT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;proprieta&quot;</span>));
        
        carica_combo(combo,<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac59b30dcb0091dee449d27aa558f9695"></a><!-- doxytag: member="mono_main.cpp::handler_visualizza_regole" ref="ac59b30dcb0091dee449d27aa558f9695" args="(GtkMenuItem *menuitem, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#ac59b30dcb0091dee449d27aa558f9695">handler_visualizza_regole</a> </td>
          <td>(</td>
          <td class="paramtype">GtkMenuItem *&#160;</td>
          <td class="paramname"><em>menuitem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
        GtkWidget *window=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;regole &quot;</span>));
        gtk_widget_show_all(window);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a48bba7eaf8788f6daf8af2e15627e0b2"></a><!-- doxytag: member="mono_main.cpp::handler_visuallizza_dialog_conferma" ref="a48bba7eaf8788f6daf8af2e15627e0b2" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a48bba7eaf8788f6daf8af2e15627e0b2">handler_visuallizza_dialog_conferma</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Questo segnale mi permette di aprire una finestra di dialog per chiedere all'utente se desidera realmente compiere una determinata azione. </p>
<div class="fragment"><pre class="fragment">{
        GtkWidget *dialog=GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dialog_conferm&quot;</span>));
        gtk_widget_show_all(dialog);
        GtkLabel *label=GTK_LABEL(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;mex_conferma&quot;</span>));
        gtk_label_set_text(label,<span class="stringliteral">&quot;Confermi di voler dichiarare fallimento?&quot;</span>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad3c3843f2b32ca3b4de9f28e7e0fc683"></a><!-- doxytag: member="mono_main.cpp::hide_and_remove" ref="ad3c3843f2b32ca3b4de9f28e7e0fc683" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#ad3c3843f2b32ca3b4de9f28e7e0fc683">hide_and_remove</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sengale di uscita particolare associato al pulsante esci delle dialog visualizza carte che svuota la combo e contralla che un certo giocatore non debba dichiarare fallimento. </p>
<div class="fragment"><pre class="fragment">{
        GtkComboBoxText *combo=GTK_COMBO_BOX_TEXT(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;proprieta&quot;</span>));
        
        rimuovi(combo,<span class="stringliteral">&quot;combo_entry&quot;</span>,<span class="stringliteral">&quot;ipoteca&quot;</span>);
        
        gtk_widget_hide(gtk_widget_get_toplevel(GTK_WIDGET(button)));
        
        <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>&gt;=0)
                inizializza_pulsanti(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="keyword">true</span>);
        <span class="keywordflow">else</span>
        {
                <span class="keywordflow">if</span>(<a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a5bb2d982a9ea44e28636477c57feac0e">conta_propr</a>&gt;0 &amp;&amp; <a class="code" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e" title="puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato...">punta_turni</a>-&gt;<a class="code" href="structturno__t.html#a165e7fd4bdcf236cb50b82d4db8562a2">giocatore</a>.<a class="code" href="structgiocatore__t.html#a23abbbc7a5ed309402daa359565dc5af">valore_residuo</a>&lt;=0)
                        mostra_messaggi(<span class="stringliteral">&quot;Il gioco non può continuare se prima non vendi altre carte&quot;</span>);
                <span class="keywordflow">else</span>
                {
                mostra_messaggi(<span class="stringliteral">&quot;Hai perso! Devi dichiarare fallimento&quot;</span>);
                inizializza_pulsanti(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="keyword">false</span>);
                }
        }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a25880d9d561c0b54301ba567d445c40f"></a><!-- doxytag: member="mono_main.cpp::hide_main_window" ref="a25880d9d561c0b54301ba567d445c40f" args="(GtkButton *button, gpointer data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="mono__main_8cpp.html#a25880d9d561c0b54301ba567d445c40f">hide_main_window</a> </td>
          <td>(</td>
          <td class="paramtype">GtkButton *&#160;</td>
          <td class="paramname"><em>button</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Segnale che chiude la finestra in cui si trova il pulsante premuto. </p>
<div class="fragment"><pre class="fragment">{
        gtk_widget_hide(gtk_widget_get_toplevel(GTK_WIDGET(button)));
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0ddf1224851353fc92bfbff6f499fa97"></a><!-- doxytag: member="mono_main.cpp::main" ref="a0ddf1224851353fc92bfbff6f499fa97" args="(int argc, char *argv[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="mono__main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>argv</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Main del programma, carica subito dal file di setup i valori delle carte nell'array tavola utilizzando <a class="el" href="fileIO_8h.html#a551dc65f05529fe5f12600a78cb7a497" title="carico l&#39;array con il quale è implementata la struttura dati carta_t con valori che si trovano in fil...">carica_board</a> funzione fornita dall'interfaccia di <a class="el" href="fileIO_8h.html">fileIO.h</a> inizializza la sensibilità dei pulsanti tramite la funzione inizializza_pulsanti aggiorna la label del credito residuo utilizzando la funzione aggiorna_label_credito. </p>
<p>inizializzazione gtk</p>
<p>aggiunga interfaccia grafica tris.glade</p>
<p>conessione dei segnali con l'interfaccia</p>
<p>loop principale </p>
<div class="fragment"><pre class="fragment">{

        <span class="keywordflow">if</span>(!<a class="code" href="fileIO_8cpp.html#a551dc65f05529fe5f12600a78cb7a497" title="carico l&#39;array con il quale è implementata la struttura dati carta_t con valori che si trovano in fil...">carica_board</a>(<a class="code" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a" title="Implementazione tramite array delle struttura dati carta_t mi rappresenta l&#39;insieme delle carte o più...">tavola</a>))
                mostra_messaggi(<span class="stringliteral">&quot;errore in fase di caricamento del file di setup&quot;</span>);
        <span class="comment">//stampa(tavola,MAX_BOARD);</span>
        
        gtk_init(&amp;argc,&amp;argv);
        
        <a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>=gtk_builder_new();
        
        gtk_builder_add_from_file(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;monopoli4.glade&quot;</span>,NULL);
        
        gtk_builder_connect_signals(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,NULL);
        
        aggiorna_label_credito(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<a class="code" href="strutta__dati_8h.html#abea96c5c88c5ab5a40e63a4f800ad89c" title="denaro di partenza del gioco">DENARO</a>);
        
        gtk_image_set_from_file(GTK_IMAGE(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;attore&quot;</span>)),<span class="stringliteral">&quot;Omino_Monopoli.jpeg&quot;</span>);
        gtk_image_set_from_file(GTK_IMAGE(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;foto&quot;</span>)),<span class="stringliteral">&quot;varie3.jpeg&quot;</span>);
        gtk_image_set_from_file(GTK_IMAGE(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dado1&quot;</span>)),<span class="stringliteral">&quot;1.jpg&quot;</span>);
        gtk_image_set_from_file(GTK_IMAGE(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dado2&quot;</span>)),<span class="stringliteral">&quot;1.jpg&quot;</span>);
        mostra_messaggi(<span class="stringliteral">&quot;Per iniziare una nuova partita: File -&gt; Nuova partita&quot;</span>);
        
        inizializza_pulsanti(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="keyword">false</span>);
        
        gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(<a class="code" href="imp__prob_8cpp.html#afa501dbb63ae6077ac8db76b560de42b" title="Creazione dell&#39;oggetto builder che permette di interaggire con la GUI.">builder</a>,<span class="stringliteral">&quot;dichiara_fallimento&quot;</span>)),<span class="keyword">false</span>);
        
        gtk_main();

        <span class="keywordflow">return</span> 0;
        
}
</pre></div>
</div>
</div>
<hr/><h2>Documentazione delle variabili</h2>
<a class="anchor" id="afa501dbb63ae6077ac8db76b560de42b"></a><!-- doxytag: member="mono_main.cpp::builder" ref="afa501dbb63ae6077ac8db76b560de42b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GtkBuilder* <a class="el" href="mono__main_8cpp.html#afa501dbb63ae6077ac8db76b560de42b">builder</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creazione dell'oggetto builder che permette di interaggire con la GUI. </p>

</div>
</div>
<a class="anchor" id="ab1d7738acc116343f76e7010f1721a8e"></a><!-- doxytag: member="mono_main.cpp::punta_turni" ref="ab1d7738acc116343f76e7010f1721a8e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structturno__t.html">turno_t</a>* <a class="el" href="mono__main_8cpp.html#ab1d7738acc116343f76e7010f1721a8e">punta_turni</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>puntatore che mi tiene traccia di quale turno è in corso e di e di chi sta giocando in un determinato momento </p>

</div>
</div>
<a class="anchor" id="acfee36e499475b8e57d156c364e4c84a"></a><!-- doxytag: member="mono_main.cpp::tavola" ref="acfee36e499475b8e57d156c364e4c84a" args="[MAX_BOARD]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcarta__t.html">carta_t</a> <a class="el" href="mono__main_8cpp.html#acfee36e499475b8e57d156c364e4c84a">tavola</a>[<a class="el" href="strutta__dati_8h.html#ad43f8c91bcd12ba9c244c810b7933c0a">MAX_BOARD</a>]</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implementazione tramite array delle struttura dati <a class="el" href="structcarta__t.html" title="struttura dati che mi rappresenta una carta con tutte la carattestiche ad essa connesse.">carta_t</a> mi rappresenta l'insieme delle carte o più precisamente l'insieme delle aziende acquistabili e non all'interno del gioco. </p>
<p>Struttura su cui un un giocatore si può muovere tramite il campo posizione_nelle_carte contenuto nella struttura <a class="el" href="structturno__t.html" title="Struttura dati che rappresenta un turno all&#39;interno del quale si trovano il nome del giocatore di che...">turno_t</a>. Array caricato da un file di testo di setup chiamato "setup_board_carte.txt" </p>

</div>
</div>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tutto</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classi</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>File</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Funzioni</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variabili</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Ridefinizioni di tipo (typedef)</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Tipi enumerati (enum)</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Valori del tipo enumerato</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Definizioni</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generato Ven 7 Giu 2013 13:30:38 per Social media Monopoly da &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
